﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace QuanLyBanHang_NewApp.Entity
{
    public class HoaDon
    {
        private long maHD, maKH;
        private DateTime ngayLap;
        private double tongGia, tienThe;
        private List<SanPham> chitietHD;

        public HoaDon()
        {
            maHD = 0;
            maKH = 0;
            ngayLap = DateTime.Now;
            tongGia = 0;
            tienThe = 0;
            chitietHD = new List<SanPham>();
        }

        public void addCart(SanPham sp, int soluong)
        {
            foreach (SanPham sanpham in chitietHD)
            {
                //Nếu mã sản phẩm thêm vào trùng với mã của 1 sản phẩm nào đó trong list thì tăng số lượng của sản phẩm trong list
                if (sanpham.getAttribute(0).Equals(sp.getAttribute(0)))
                {
                    sanpham.setCount(int.Parse(sanpham.getAttribute(4)) + soluong);
                    tongGia += double.Parse(sp.getAttribute(3)) * soluong;
                    return ;
                }
            }
            sp.setCount(soluong);
            chitietHD.Add(sp);            
            tongGia += double.Parse(sp.getAttribute(3))*soluong;
            
        }

        public double getPrice(double tienthe)
        {
            if (tienthe != -1)
            {
                
                if(tienthe >= tongGia)
                {
                    tienThe = tongGia;
                    return 0;
                }
                else
                {
                    tienThe = tienthe;
                }
            }
            return tongGia - tienThe;
        }

        public void setKH(long makh)
        {
            maKH = makh;
        }

        public void deleteItem()
        {
            //if (chitietHD.Count > 0)
            //{
            //    foreach (SanPham sp in chitietHD)
            //    {
            //        if (long.Parse(sp.getAttribute(0)) == masp)
            //        {
            //            tongGia -= double.Parse(sp.getAttribute(3)) * int.Parse(sp.getAttribute(4));
            //            chitietHD.Remove(sp);
            //            return;
            //        }
            //    }
            //}
            tongGia = 0;
            if (chitietHD.Count > 0)
            {
                
                foreach (SanPham sp in chitietHD)
                {
                    tongGia += long.Parse(sp.getAttribute(3)) * long.Parse(sp.getAttribute(4));
                }
               
            }
        }
        public string getAttribute(string index)
        {
            switch (index)
            {
                case "mahd": return maHD.ToString();
                case "makh": return maKH.ToString();
                case "ngaylap": return ngayLap.ToShortDateString();
                case "tonggia": return tongGia.ToString();                    
                case "tienthe": return tienThe.ToString();
                default: return "!error";
            }
            
        }
        public List<SanPham> getDetail()
        {
            return chitietHD;
        }
    }
}
